mov dl,byte ptr [ecx+eax] 是什么意思?

来源:百度知道 编辑:UC知道 时间:2024/05/18 10:39:23
mov dl,byte ptr [ecx+eax]
cmp eax,xxxxxxxx
jnz end
mov dl,xx
cmp eax xxxxxxxx
jnz end
mov dl,xx
end:
mov byte ptr [eax],dl
jmp xxxxxxxx
能帮我解释一下这段内容是什么意思吗?

byte ptr [ecx+eax]
其中ptr强制转换时要用的关键字,byte是要转换的类型,[ecx+eax]是一个内存地址,即一个变量。以下看详细解释。

mov dl,byte ptr [ecx+eax]
//把ptr [ecx+eax]地址所代表的变量强转成byte型(即16位,等价于一个字节)放入DL中,因为32位机每个变量是32位的,而DL是DX的低16位,如果不转就放不进去。
cmp eax,xxxxxxxx
//把eax中的值和xxxxxxxx比较
jnz end
//不相等,就跳到end
mov dl,xx
//相等,就把xx放入dl中
cmp eax xxxxxxxx
//比较eax和xxxxxxxx
jnz end
//不想等,跳到end
mov dl,xx
//相等,把xx放入dl
end:
mov byte ptr [eax],dl
//把eax强转位byte型(即16位),把dl放入eax中
jmp xxxxxxxx
//跳到xxxxxxxx

就是判断,比较呀
你要是真要叫人说个来龙去脉,只是这几行代码很难想到它到底是要做什么

Mov a,b 把b赋值到a
cmp a,b 比较a,b
jnz x 如果上个比较不相等,则跳到x

哇 这是一段汇编语言吧